In a communications system, usually data transmission reliability is improved through channel encoding, to ensure communication quality. A polar code (polar code) is an encoding manner that can achieve a Shannon capacity and that has low encoding and decoding complexity. The polar code is a linear block code. A generation matrix of the polar code is GN, and an encoding process of the polar code is x1N=u1NGN, where u1N=(u1, u2, . . . , uN) is a binary row vector, GN=BNF2⊗(log2(N)), a code length N=2n, and n≥0.
            F      2        =          [                                    1                                0                                                1                                1                              ]        ,and BN is an N×N transposed matrix, such as a bit reversal matrix. F2⊗(log2(N)) is a Kronecker power of F2, and is defined as F⊗(log2(N))=F⊗F⊗((log2(N))−1).
In the encoding process of the polar code, some bits in u1N are used to carry information and are referred to as information bits, and a sequence number set of these information bits is denoted as A. The other bits are set to fixed values that are agreed on by a transmit end and a receive end in advance and are referred to as fixed bits, and a sequence number set of these bits is represented by using a complementary set Ac of A. Without loss of generality, these fixed bits are usually set to 0. Actually, a fixed bit sequence may be randomly set provided that the transmit end and the receive end agree in advance. Therefore, an encoded bit sequence of the polar code may be obtained by using the following method: x1N=uAGN(A), where uA is an information bit set in u1N, and uA is a row vector of a length K, in other words, |A|=K, |⋅| indicates a quantity of elements in the set, and K indicates a quantity of elements in the set A and also indicates a quantity of to-be-encoded information bits; and GN(A) is a submatrix that is in the matrix GN and that is obtained based on rows corresponding to indexes in the set A, and GN(A) is a K×N matrix. Selection of the set A determines performance of the polar code.
In communications application that is insensitive to a system latency, a hybrid automatic repeat request (HARQ) is a commonly used transmission method for improving a system throughput. When transmitting an information block, a transmit device encodes the information block and sends the encoded information block to a channel. If a receive device decodes a received signal and finds that transmission succeeds, the receive device sends an acknowledgement (ACK) message to the transmit device, so as to complete the transmission of the information block. If the receive device decodes a received signal and finds that transmission fails (for example, cyclic redundancy check fails), the receive device transmits a negative acknowledgement (NACK) message to the transmit device through a feedback link, and the transmit device retransmits the information block. Alternatively, when no ACK feedback sent by the receive device is received within a specific period of time, the transmit device also retransmits the information block. This process continues until the receive device correctly performs decoding. To obtain a maximum link throughput, the receive device temporarily stores all received signals and decodes the received signals together with a newly received signal.
In an existing retransmission method, reliability of a polar channel needs to be recalculated based on a current code rate during each retransmission, and complexity is excessively high.